#! /usr/bin/env node

const args = process.argv.slice(2);
// console.log(args);
let PORT = 8000;
const http = require('http');
const fs = require('fs');
const path = require('path');


function anyever(){
    http.createServer((req,res)=>{
        // console.log(req.url);
        let rootpath = process.cwd();
        rootpath = path.join(rootpath,req.url)
        // console.log(rootpath);

        if(fs.existsSync(rootpath)){ //判断路径是否存在
            if(fs.statSync(rootpath).isDirectory()){  //判断是否是文件夹
                let html = fs.readFileSync(path.join(__dirname,'./publish/index.html'),'utf-8');
                let dirarr = fs.readdirSync(rootpath);

                let lihtml = dirarr.map(item=>{
                    return `<li>
                        <a href="${path.join(req.url,item)}">${item}</a>
                    </li>`
                }).join('')
                html = html.replace('{{list}}',lihtml)
                res.end(html)
                
            }else{ //不是文件夹 是文件
                res.end(fs.readFileSync(rootpath),'utf-8');
            }
        }else{  //路径不存在
            res.end('路径不存在')
        }



    }).listen(PORT,()=>{
        console.log('服务起来啦!');
    })
}

if(args.length == 0){  //数组长度为0 说明 没有参数
    console.log('默认端口：8000');
    anyever();
}else{  //有参数
    if(args[0]=='-v'){  //一个参数  为-v 的 
        console.log('版本号: 1.0.0');  //打印版本号
    }else if(args[0] == '-p'){  //一个参数为-p 的
        console.log("端口号为："+args[1]); //他的第二个参数是自定义端口号
        PORT = args[1];  //赋值保存 自定义的端口号
        anyever();  
    }
}